<title>Test Plan:3.0 M5</title>
<table border="0" cellspacing="5" cellpadding="2" width="100%">
  
    <tr> 
      
    <td align="left" valign="top" bgcolor="#0080c0"> <b><font color="#ffffff" face="Arial,Helvetica"> 
      Eclipse 3.0 - Team 3.0 M5 Test Plan</font></b></td>
    </tr>
</table>
<h1>Test Plan for 3.0 M5 Milestone</h1>
<p>This test plan covers areas touched by Team in 3.0 M5 development. For a list 
  of all Team bugs fixed in 3.0 M5, click <a href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Platform&component=VCM&target_milestone=3.0%2BM5&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=RESOLVED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&namedcmd=3.0%2BM5&newqueryname=&order=Reuse%2Bsame%2Bsort%2Bas%2Blast%2Btime&field0-0-0=noop&type0-0-0=noop&value0-0-0=">here</a>.</p>
<h2>Checkout</h2>
<h3>Checkout As... Prompting</h3>
<ul>
  <li>Select a project in HEAD</li>
  <li>Perform a Checkout As</li>
  <li>Use the same name but specify a custom location</li>
  <li>Ensure project was checked out properly</li>
  <li>Select the same project and choose Checkout As again</li>
  <li>Use the same name but don't specify a custom location</li>
  <li>Ensure that the use is prompted to overwrite</li>
  <li>Test various options in prompt to ensure proper behavior</li>
</ul>
<h2>Compare</h2>
<h3>Comparison of remote resources</h3>
<h4>Compare With... in Repositories view </h4>
<p>Perform the following steps:</p>
<ol>
  <li>Select a project in HEAD and choose Compare With... from context menu</li>
  <li>Select a branch tag</li>
  <li>Ensure result of comparison is correct</li>
  <li>Repeat and in step 2) use a version tag</li>
</ol>
<p>Repeat the above steps for a project in a branch and a project version.</p>
<h4>Compare on two selections in Repositories view</h4>
<p>Perform the following steps:</p>
<ol>
  <li>Select a project in HEAD</li>
  <li>CTRL-select a project in a branch</li>
  <li>Choose Compare from context menu</li>
  <li>Ensure result of comparison is correct</li>
</ol>
<p>Repeat the above for various conbinations (branch + version, version + branch, 
  branch + branch, version + version).</p>
<h4>Compare on two selections in Resource History view.</h4>
<p>Perform the following steps:</p>
<ul>
  <li>Open Resource History view on a file with multiple revisions</li>
  <li>Select 2 and choose Compare from the context menu</li>
  <li>Ensure result of comparison is correct</li>
</ul>
<h2>Synchronize View</h2>
<h3>CVS Workspace Subscriber</h3>
<h4>Operations and Selection</h4>
<p>Ensure Commit and Update buttons:</p>
<ul>
  <li>operate on all applicable visible changes</li>
  <li>exclude filtered changes</li>
  <li>exclude conflicts</li>
</ul>
<p>Ensure Update menu action:</p>
<ul>
  <li>is enabled when selection contains incoming or conflicting changes</li>
  <li>operates only on selected changes</li>
  <li>silently handles mergable conflicts</li>
  <li>will prompt if conflicts are no mergable</li>
</ul>
<p>Ensure Commit menu action</p>
<ul>
  <li>is enable only when selection contains outgoing changes</li>
  <li>prompts form unadded resources</li>
  <li>operates only on selected changes</li>
</ul>
<p>Ensure Override and Commit and Override and Update</p>
<ul>
  <li>are only enabled for conflicts or changes in the opposite direction</li>
  <li>operates only on selected changes</li>
</ul>
<p>Ensure Refresh button refreshes all projects (or working set projects) regardless 
  of mode or selection.</p>
<p>Ensure Refresh menu action refreshes only the selection</p>
<h4>Modes and Working Sets</h4>
<p>Ensure that choosing modes and working sets </p>
<ul>
  <li>result in proper filtering</li>
  <li>updates status bar properly</li>
</ul>
<p>All actions on large sets (Mark as Merged as well)</p>
<h3>Merge Subscriber</h3>
<h4>Operations and Selection</h4>
<p>Perform similar tests as for the workspace subscriber (ignoring Commit operations)</p>
<h4>Modes and Working Sets</h4>
<p>Perform similar tests as for the workspace subscriber</p>
<h3>Resource History view editor linking</h3>
<ol>
  <li>Open the Resource History view and enable editor linking</li>
  <li>Open a compare editor from the sync view (on a resource that exists remotely) 
    and ensure that the history view updates.</li>
  <li>Open an editor from the Repositories vew and ensure that the history view 
    updates.</li>
  <li>Open an editoron a local file and ensure that the history view updates.</li>
</ol>
<p>Repeat the above with the Resource History view hidden and ensure that no revision 
  history is fetched (i.e. no jobs appear in progress view).</p>
<h2>Concurrency</h2>
<h3>Project State Changes</h3>
<h4>Background refresh and disconnect</h4>
<ol>
  <li>Load several projects from the repository</li>
  <li>Ensure that several have outgoing and incoming changes</li>
  <li>Choose one project to disconnect. The project should have incoming and outgoing 
    changes and be one of the later ones in the refresh order (alphebetical).</li>
  <li>Perform a refresh on all the projects</li>
  <li>While the refresh is occuring, disconnect the project chosen in step 3) 
    and leave CVS folders.</li>
  <li>Ensure that the project is removed from the sync view and no errors occur</li>
</ol>
<p>Repeat the steps and purge the CVS meta-data in step 5).</p>
<p>Repeat the above steps but change the operation in step 5) to the following:</p>
<ul>
  <li>close project</li>
  <li>project where server is unreachable</li>
  <li>delete project</li>
  <li>binary project import over source project with outgoing changes</li>
</ul>
<h4>Decoration and disconnect</h4>
<ul>
  <li>Load several projects from the repository</li>
  <li>Ensure that several have outgoing and incoming changes</li>
  <li>Choose one project to disconnect. The project should have incoming and outgoing 
    changes and be one of the later ones in the refresh order (alphebetical).</li>
  <li>Turn on CVS decorators</li>
  <li>As the decorations are being calculated, disconnect all projects from CVS 
    control.</li>
  <li>Ensure that the project is removed from the sync view and no errors occur</li>
</ul>
<p>Repeat the above steps but change the operation in step 5) to the following:</p>
<ul>
  <li>close project</li>
  <li>project where server is unreachable</li>
  <li>delete project</li>
  <li>binary project import over source project with outgoing changes</li>
  <li>delete or move files and folders (to test move/delete hook)</li>
</ul>
<h3>Minimal Performance Setting</h3>
<p>Test the following background operations when performance is on minimum setting:</p>
<ul>
  <li>Project checkout</li>
  <li>Refresh</li>
  <li>Repository view expansion</li>
  <li>Replace With Latest or Branch or Version</li>
</ul>
<h2>Crash Recovery</h2>
<p>Scenario 1</p>
<ol>
  <li>Turn on deep dirty decoration</li>
  <li>Dirty a file and ensure that the file and it's parents are dirty</li>
  <li>Quit Eclipse so dirty state is persisted</li>
  <li>Restart and perform an override and update or commit and ensure file and 
    parents are clean</li>
  <li>Kill Eclipse</li>
  <li>Restart and ensure parents and file are clean</li>
</ol>
<p>Scenario 2</p>
<ol>
  <li>Check out two copies of the same project</li>
  <li>Dirty the same file in both projects, commit one and refresh the other in 
    the sync view so a conflict is visible</li>
  <li>Quit Eclipse so that the sync state is persisted</li>
  <li>Restart Eclipse and perform an Override and Commit on the conflict</li>
  <li>Kill Eclipse</li>
  <li>Restart Eclipse and ensure that the sync view doesn't show the file (i.e 
    the file is in-sync).</li>
</ol>
<h2>Miscellaneous</h2>
<p>Project sharing uses Add instead of Import (31928)</p>
<p>43494: Orphaned CVS folders before build</p>
<p>43559: Decorators and background build</p>
<p>44086: Replace with latest on new folder</p>
<h2>Command Line Compatibility</h2>
<p>Edit/Unedit and Baserev file format</p>
<p>Refresh Local</p>
</BODY>
</html>